فايل و جزئيات آن
فايل
فايل مجموعهاي است نامدار(معمولا داراي يک ساختار دروني مشخص) از نمونههاي مختلف يک نوع ( گاه بيش از يک نوع ) رکورد . در حالت اول, فايل را تک نوعي و در حالت دوم , چند نوعي ميگوييم . گاه ممکن است که فايل اصلاً (مجموعهاي از رکوردها) نباشد, بلکه صرفا دنبالهاي بي ساختار از نويسه ها (کاراکترها) باشد که از نظر سيستم فايل معناي خاصي هم ندارند .در اکثر سيستمهاي عامل جديد, چنين ديدي از فايل هم به کاربر ارائه ميشود . تاکيد ميکنيم که وقتي که فايل مجموعهاي ساختمند از رکوردها باشد , ميتوان گفت که فايل يک ساختار دادهاي خارجي است . يعني در حافظه خارجي ( برون ماشيني ) ذخيره شده است .
ساختار فايل خود دو صورت دارد : ساختار منطقي و ساختار فيزيکي . ساختار منطقي فايل نشان دهنده سازماني است که برا ساس آن رکودهاي منطقي گرد هم آمدهاند. به بيان ديگر , از ديد کاربرد ساختار منطقي فايل , چگونگي ارتباطات و پيونده هاي بين رکوردهاي منطقي را نشان ميدهد. ساختار فيزيکي فايل نشان دهنده چگونگي ذخيره سازي بلاکهاي فايل در رسانه (مثلا ديسک) است در واقع ساختار فيزيکي فايل نمايشگر ديد برنامه ساز سيستم نسبت به فايل است .
مفهوم فايل در معناي عام , داراي سه ويژگي است که هميشه بايد مورد توجه قرار گيرند .
اندازه بزرگ به حدي که به يکبار در حافظه درون ماشيني نميگنجد
پايايي , يعني دادههاي آن از بين نميروند , ماندگارند , مگر اينکه پيرو درخواست کاربرد ,توسط سيستم حذف شوند.
اشتراکي بودن بين تعدادي کاربرد مجاز(مگر اينکه فايلي به دلايلي خصوصي شود
مکانيسم انتزاعي ذخيره سازي اطلاعات
فايل يک مکانيسم انتزاعي است که به کاربر امکان ميدهد تا اطلاعات خود را ذخيره کند و در صورت نياز, آنها را بازيابي و پردازش کند و احياناً اطلاعات جديدي توليد نمايد.
اطلاعات داشت و دارد و هميشه هم مکانيسمي عيني براي نگهداري اطلاعات در اختيار داشت و دارد.
اين مکانيسم تا اوايل قرن بيستم دستي و بعد ماشيني شد . اين مکانيسم , همان مفهم عيني فايل است که در وضع دست يو , در چيزهايي , مانند لوح ,دفتر , کتاب ,ديوان و ... نمود مييافته و هنوز هم مييابد. در وضع ماشينياش , مفهوم عيني فايل به صورت مجموعهاي از دادههاي ذخيره شده بطور فيزيکي در يک رسانه ماشيني نمود مييابد با ويژگيها و خصوصياتي که ديده و خواهيم ديد.
نام گذاري فايل
انواع فايل
صفات خاصه فايل
راهنماي فايل
نام مسيري
نامگذاري فايل
فايل از ديد کاربر (بويژه غير برنامه ساز), يک مکانيسم انتزاعي است که امکان ميدهد تا کاربر اطلاعات خود را ذخيره کند و در صورت لزوم آنها را بخواند . يک چنين مکانيسم انتزاعي که ميتواند آنرا نوعي شييء تلقي کرد, بايد از ظريق يک نام قابل تعريف , دستيابي و استفاده باشد.
برنامه (دقيقا فراروند ) فايلي را ايجاد ميکند , نامي به اين شيي ء ميدهد و اگر اجراي برنامه پايان پذيرد , برنامهاي ديگر هم (در صورت مجاز بود) ميتواند با همين نم , به اين شيي دستيابي داشته باشد.
قواعد نامگذاري فايلها در سيستمهاي مختلف يک سان نيست معمولا نام فايل کي رشته الفبا عددي تا هشت کاراکتر است و در بعضي سيستمها طول اين رشته تا 255 کاراکتر هم ميتواند باشد. در برخي سيستمها برخي حروف درشت و حروف ريز در نام فايل از يکديگر فرق دارند ( مثل ( UNIX و در بعض ديگر يکسان هستند.
در اکثر سيستمهاي فايل , نام فايل دو بخش دارد که با علامت 0 از هم جدا ميشوند. بخش بعد از ين علامت به پسوند نام فايل موسوم است و معمولا گوياي محتواي فايل يا نقش فايل و يا ماهيت فايل است (در MS-DOS پسوند سه حرفي است و در UNIX , تعدادي پسوند ميتواند وجود داشته باشد).
انواع فايل
در هر سيستمي معمولا چند نوع فايل وجود دارد و اما بطور كلي فايلها راميتوان از نظر كاربر آنها به دو رده تقسيم كرد :
فايل عادي
فايل راهنما(يا سيستمي(
فايل عددي حاوي اطلاعات كاربر است (مثل فايلهاي جدول بالا) فايلهاي راهنما حاوي اطلاعات خود سيستم فايل است .
فايل عادي ممكن است خود فايل اسكي يا فايل دودويي باشد.
فايل اسكي از تعداد سطر) متن) تشكيل شده است . طول سطرها ميتواند متغير باشد. مزيت اصلي فايل اسكي اينست كه ميتوان محتوايش را , به صورت كه هست , به نمايش درآورد و يا چاپ كرد و توسط يك ويراستار متن قابل ويرايش است . بعلاوه اگر تعدادي زيادي برنامه از فايلهاي اسكي در وردي و خروجي استفاده كنند . به آساني ميتوان خروجي يك برنامه را به ورودي برنامهاي ديگر پيوند زد .
نوع ديگر فايل , فايل دودويي است (به اين معنا كه از نوع اسكي نيستند). با چاپ محتواي اين نوع فايل چيزهايي نامفهوم ظاهر ميشود.
توجيه داشته باشيم كه هر چند از لحاظ تكنيكي , فايل صرفا دنبالهاي بايتها است, اما سيستم عامل تنها فايلي را اجرا ميكند كه قالب مناسب داشته . به عنوان مثال , در سيستم UNIX, فايل دودويي قابل اجرا از پنج بخش تشكيل شده است :
سرايند , متن داده , بيتهاي باز جايدهي و جدول نماد
دو فيلد سرآيند , عددي موسوم به عدد جادويي وجود دارد كه مشخص ميكند فايل يك فايل اجرايي است . در فيلدهاي بعدي اطلاعاتي از قبيل اندازه متن, اندازه داده , آدرس شروع اجرا و... وجود دارد. آنگاه بخش هاي حاوي متن برنامه و دادههاي برنامه قرار دارند . از جدول نمد هم براي اشكال زدايي استفاده ميشود.
صفات خاصه فايل
هر فايلي يک نام و يک محتواي دادهاي دارد . اما هر سيستم فايل اطلاعاتي را در مورد هر فايل نگهداري ميکند که در اساس مشخصات خود فايل هستند. اين مشخصات را صفات خاصه فايل ميناميم . تعداد اين صفات در سيستمهاي مختلف , يکسان نيست . اما بطور کلي , صفات خاصه فايل عبارتند از :
نام فايل
شناسه صاحب فايل
شناسه ايجاد کننده فايل
کليد واژه براي دستيابي به فايل
کاربران مجاز به دستيابي و حق دستيابي هر کاربر
طول رکورد
مکان کليد در رکورد
اندازه جاري فايل
حداکثر اندازه مجاز براي فايل
طول کليد
تاريخ ايجاد
تاريخ آخرين دستيابي براي خواندن
تاريخ آخرين تغيير
فلاگ نوع فايل از نظر خواندن/ نوشتن :0 باري R/W و 1براي فقط R
فلاک نوع فايل از نظر کاربرد : 0 : فايل عادي , 1: فايل سيستمي
فلاگ نهان داده : 0 : دادههاي فايل قابل چاپ هستند.1 دادههاي فايل غير قابل چاپ هستند
فلاگ نوع فايل از نظر اسکي يا دودويي : 0 اسکي 1: دودويي
فلاگ آرشيو : 0 فايل نسخه پشتيبان داد 1: بايد نسخه پشتيبان ايجاد شود
فلاگ شيو دستيابي : 0 براي شيوه پي در پي 1: براي شيوه تصادفي
آدرس شروع فايل
آدرس پايان فايل
نوع و نام رسانهفايل
تاريخ توليد آخرين نسخه پشتيبان
شماره رسانه
و برخي اطلاعات ديگر
اين اطلاعات بايد ر جايي نگهداري شوند . معمولاً اين اطلاعات در راهنماي فايل ذخيره ميشوند.
راهنماي فايل
هر سيستم فايل , معمولا از يك راهنماي فايل براي مديريت فايلها استفاده ميكند . راهنماي فايل ميتواند يك ساختار ساده جدولي و يا فايلي با ساختار پيچيده باشد .
در اساس , راهنماي فايل جدولي است داراي تعداد مدخل ) درايه ), براي هر فايل يك مدخل . در هر مدخل , نما فايل , صفات خاصه فايل, و آدرسهايي كه دادههاي فايل در آنها ذخيره شدهاند, نگهداري ميشود گاه ممكن است در هر مدخل, فقط نام فايل و نشانهرويي (نشان نمايي) به ساختاري حاوي بقيه اطلاعات , وجود داشته باشد.
تعداد راهنماي فايل در سيستمها فرق ميكند, ساده ترين طرح اين است كه يك راهنما براي همه فايلها ايجاد شود.
رد اين طرح اگر كاربران زيادي وجود داشته باشند و از نام فايل يكسان استفاده كنند , سيستم نميتواند عمل كند . اين نوع راهنماي فايل اينك ديگر عملاً متروك است .
طرح ديگر اين است كه براي هر كاربر يك راهنماي فايل ايجاد شود با اين طرح , مشكل تشابه نامها رفع ميشود اما اگر كاربران مقدار زيادي فايل داشته باشند, چندان رضايت بخش نيست زيرا گاه كاربري ممك است بخواهد فايلهايش را گروه بندي كند .
مثلا استادي , تعدادي فايل دارد : فايلهايي حاوي متن كتاب در دست تاليف , فايلهاي حاوي مشخصات دانشجويان و احياناً تكاليف آنها , فايلهاي حاوي مكاتبات , فايلهاي حاوي برنامه كاري در هفته , فايلهاي حاوي صفحاتي از و بو ..بايد راهيم انعطاف پذيري باري گروه بنيد اين فايلها وجود داشته باشد و در عين حال دستيابي به آنها هم براي كاربر آسان باشد .
براي اين منظور , ساختار درخت , ميتواند مناسب باشد يعني درختي از راهنماها ايجادشود. در اين طرح يك كاربرد . هر مقدار راهنما كه نياز باشد ميتواند داشته باشد به نحوي كه فايلهايش به راهي طبيعي گروه بندي شوند.
مکانيسم عيني ذخيره سازي
فايل هر چند يک مکانيسم انتزاعي است , نهايتا بايد عينيت داشته باشد, يعني به صورتيکه مکانيسم عيني خيره سازي اطلاعات در محيط فيزيک وجود داشته باشد, در فيزيکي ترين صورتي, همان رشتهاي بيت است که گفتيم در سيستم فايل, مورد نظر نيست .
سيستم فايل خود لايههايي دارد و به ويژه دو لايه اساسي آن , يکي سيستم فايل منطقي و ديگري سيستم فايل فيزيک است از نظر سيستم ايل منطقي , فايل همان مجموعه رکوردهاي ذخيره شده است که معمولا برا ساس يک ساختار خاص سازماندهي ميشوند و از طريق يک شيوه دستيابي مهم مورد دستيابي قرار ميگيرند اما از نظر سيستم فايل فيزيک فايل از تعداد بلاک تشکيل شده است و نيز ممکن است مجموعهاي از تقسيمات ديگر مثل باکت , خوشه يا گسترش باشد که براساس طرح خاصي روي رسانه ذخيره شده است
بلاک بندي
باکت خوشه و گسترش
فايل در محيط فيزيکي
تکنيک هاي پياده سازي راهنماي فايل
روش کلي اجراي درخواست کاربر
سطوح نشاني دهي
باکت,خوشه, گسترش
با توجه به تعريف بلاک , ميتوان گفت که فايل مجموعهاي است از بلاکها , اما ممکن است فايل به صورت تعدادي ناحيه بزرگ موسوم به باکت هم ذخيره شود . باکت مجموعه اي است از تعدادي بلاک که ميتواند طي يک دستور واحد خواندن به بافر منتقل شود(طبعا اندازه بافر بايد چنان باشد که باکت در آن بگنجد . ( باکت در حالت خاص ميتواند تک بلاکي باشد. اندازه باکت در بعضي از پردازشها نقش مهمي مي تواند ايفا کند (مثلاً در پردازش انبوه فايل(
باکتهاي فايل معمولا در محيط فيزيکي ذخيره سازي همجوارند, ما گاه ممکن است چنين نباشد . بلاکهاي درون بکت هم معمولا همجوار و گاه ناهمجوارند
مفهوم باکت در بسياري از سيستمها, ونه لزوماً با نام باکت, وجود دارد. اصطلاحات ديگر معادل مفهوم باکت عبارتند زا : ترن , بند , بخش
خوشه
گاه به تعدادي لاک همجوار يا سکتور همجوار خوشه گفته ميشود. تعداد بلاک خوشه را اندازه خوشه مينامند
گسترش
مجموعهاي از شيارها درون يک استوانه و يا تعدادي استوانه همجوار را گسترش ميگويند پس گسترش هم در نهايت تعدادي بلاک است و ميتوان آنرا مترادف مفهوم باکت پنداشت
فايل در محيط فيزيکي
فايل داراي تقسيمات در چند سطح است : فيلد ,رکورد ,بلاک ,باکت و... ما در اين بحث با توجه به مفهوم اصلي بلاک , چگونگي نشست فايل روي رسانه (در اين بحث : ديسک) را بررسي ميکنيم. روشن است که سيستم فايل بايد فضاي لازم را به فايل تخصيص دهد . چگونگي نشست فايل در محيط فيزيکي به چگونگي تخصيص فضا به فايل بستگي دارد. در هر حال , بلاکهاي هر فايل بايد در بلاکهايي از ديسک جاي داده شوند.
فضاي حافظه خارجي هم مثل حافظه اصلي , در اساس به دو روش تخصيص داده ميشود:
تخصص پيوسته
تخصيص ناپيوسته
با توجه به اين دو نوع کلي تخصيص فضا, ميتوان گفت که فايل هم بطور کلي به يکي از دو صورت زير ذخيره ميشود:
نشست پيوسته
نشست ناپيوسته
در زير اين دو نوع نشست رابررسي ميکنيم:
نشست پيوسته
در اين طرح نشست ,فايل در بلاکهاي فيزيکي همجوار )پيوسته) روي ديسک ذخيره ميشود.مثلاً در ديسک با بلاکهاي فيزيکي 1k بايتي , يکي 50k بايتي ,50بلاک بهم پيوسته را اشغال ميکند.
اين طرح نشست دو مزيت مهم دارد:
1-پياده سازي آن ساده است . با داشتن آدرس اولين بلاک روي ديسک, ميتوان به بقيه بلاکها هم دستيابي داشت.
2-کارايي سيستم بالا است زيرا کل فايل را ميتوان طي يک عمل واحد از روي ديسک خواند.
اما اين طرح معايب قابل توجهي هم دارد از جمله:
1-حداکثر اندازه بايد در مرحله ايجاد فايل , معلوم باشد .
2-بروز پديده بندبند شدگي در فضاي ديسک به يان معنا که جاي جاي فضاي هرز پديد ميآيد که بايد با تکنيک يکپارچه سازي يا فشرده سازي اين پديده را از بين برد .
نشست ناپيوسته
در اين طرح نشست , سيستم تعدادي بلاک ناهمجوار را به فايل تخصيص ميدهد. براي پياده سازي اين طرح روشهايي وجود دارد که در زير بررسي ميکنيم.
ايجاد ليست پيوندي مجهز به جدول راهنما
در اين روش , جدولي در حافظه اصلي نگهداري ميشود. براي هر بلاک فيزيکي (روي ديسک) يک مدخل در جدول وجود دارد. با مشخص کردن مدخل مربوط به اولين بلاک فايل , شماره بلاک بعدي فايل در مدخل مربوط به بلاک قبل گذشته ميشود.
در اين روش , دستيابي تصادفي سريعتر است (جدول راهنما در حافظه اصلي است. (
در اينجا نيز , با داشتن آدرس اولين بلاک , ميتوان به بلاکهاي ديگر هم دستيابي داشت ( در سيستم MS-DOS از اين روش استفاده ميشود. (
عيب مهم اين روش اين است که تمام جدول بايد در حافظه اصلي مقيم باشد . مثلاً براي ديسکي با 500000بلاک 1k بايتي (M500), به جدولي با 500000 مدخل, هر يک حداقل 3 بايت نياز است . در نتيجه خود جدول حداقل M5/1 حافظه اشغال ميکد ( در MS-DOS با استفاده از بلاکهاي بزرگ k32 بايتي در ديسکهاي با ظرفيت بالا , اندازه جدول کاهش مييابد.(
استفاده از تکنيک (گره (
در اين روش , براي تعيين اينکه کدام بلاک فيزيکي روي ديسک مربوط به کدام بلاک از يک فايل است . براي هر فايل , جدول کوچکي به نام I ايجاد ميشود. در اين جدول صفات خاصه فايل و آدرس بلاکهاي فيزيکي فايل قرار دارد . اگر فايل کوچک باشد همين گره I کفايت ميکند. اما براي فايلهاي بزرگ , در مدخلي از اين گره , آدرس بلاکي از ديسک قرار ميگيرد که حاوي آدرس فيزيکي بلاکهاي ديگر فايل است . اگر باز هم فايل بزرگتر باشد . مدخل ديگري ايجاد ميشود و..(اين روش در سيستم يونيکس استفاده شده است (
تخصيص فضاي ناپيوسته البته مطلوبتر است , زيرا علاوه بر مزايايي که دارد, معمولا يافتن يک فضاي يکپارچه روي ديسک دشوار است , حال آنکه يافتن فضاي خالي کوچکتر, معمولا امکان پذير است .
نشست فايل بطور ناپيوسته حتي ممکن است روي چند ديسک (آرايهاي از ديسکها) باشد, به بيان ديگر فايل روي چند نوع ديسک توزيع شده باشد به چنين فايلي , فايل توزيع شده يا فايل چند پاره يا اوراق شده گفته ميشود. البته تکنيک اوراق کردن در سطوح مختلف پياده سازي ميشود(سطح کاراکتر, رکورد ,بلاک و ..) مثلا در سطح کاراکتر , بيتهايش را روي يک ديسک از يک آرايه هشت ديسکي پخش ميکنند.
مديريت بلاکهاي آزاد
تکنيک هاي توليد نسخه پشتيبان
ملاحضاتي در تخصيص فضابه فايل
چگالي لود اوليه
موضعي بودن رکوردها «لوکاليت»
تکنيکهاي پياده سازي راهنماي فايل
در اين قسمت سه تکنيک براي پياده سازي راهنمايي ارائه ميکنيم
مدخل حاوي آدرس پلاکهاي فايل
در اين تکنيک جدولي ايجاد ميکنيم به گونهيا که در ا، براي هر فايل يک مدخل (در صورت لزوم بيش از يک ) در نظر گرفته ميشود . تمام اطلاعات لازم در همين مدخل (ها) ثبت ميشود.
در فيلد گسترش , شماره مدخل بعدي مربوط به فايل درج ميشود. (در حالتي که فايل بيش از 16 بلاک داشته باشد)
فيلد تعداد بلاک , تعداد بلاکهاي فايل را مشخص ميکند ,شانزده فيلد انتهاي مدخل, حاوي آدرس بلاکهاي فايل روي ديسک است .
اين تکنيک در سيستمهايي که يک راهنما براي تمام فايلها دارند , به کار ميرود.
مدخل حاوي آدرس بلاک اول
اين تکنيک در سيستمهايي استفاده ميشود که طرح تخصيص ناپيوسته با استفاده از ليستهاي پيوندي دارند
در فيلد حاوي شماره اولين بلاک , آدرس اولين بلاک فايل در ليست پيوندي وجود دارد (اين تکنيک در سيستم MS- DOS بکار رفته است)
حاوي شماره گره: 1
در اين تکنيک , مدخل ساختار سادهترين دارد . هر فايل , يک گره I دارد
سيستم با استفاده از شماره گر 1 و نام فايل , اطلاعات فايل را بدست ميآورد سيستم فايل , ابتدا رهنماي ريشه را پيدا ميکند. در راهنماي ريشه , نام usr و شماره گر 1 مربوطهاش وجود دارد چون هرگره 1 در آدرس ثابتي قرار دارد .
روش کلي اجراي درخواست کاربر
سيستم فايل با دريافت حکم OPEN از برنامه کاربر , فايل را باز ميکند . اين عمل از نظر سيستم فايل , يعني مراجعه به راهنماي فايل و بدست آوردن اطلاعات لازم در مرود آن و آماده شدن براي انجام عمل ورودي /خروجي روي فايل . پس از باز کردن فايل , سيستم عمل مورد نظر برنامه کاربرد را بايد انجام دهد . اگر اين عمل بازيابي باشد .
مراحل کلي کار چنين است:
بررسي اين که کاربر اساسا به انجام عمل درخواست شده روي فايل است ؟
بررسي اينکه آيا مشخصات فايل و ساير پارامترهاي حکم بازيابي درست است؟
بررسي اينکه آيا رکورد در خواست شده در بافر هست؟ زيرا ممکن است طي علم بازيابي قبلي , با خواندن يک بلاک , به بافر منتقل شده باشد (هميشه سيستم فايل , قبل از شروع يک عمل O/I بافر برنامه را وارسي ميکند , شايد رکورد درخواست شده طي عمل ورودي/ خروجي قبلي به بافر منتقل شده باشد)
اگر بله . آنرا در اختيار برنامه پردازشگر قرار ميدهد (به روشهايي که در بحث بافرينگ خواهيم ديد) .
اگر نه , شروع عمل خواندن رکورد مورد نظر (سيستم فايل بايد آدرس داده شده در برنامه را , به شرحي که خواهيم ديد , به آدرس فيزيکي تبديل کند).برنامه فايل پرداز در صف انتظار ميماند تا عمل خواندن صورت گيرد. (ميزان انتظار بستگي به نحوه بافرينگ و درجه همروندي عمليات واحد پردازش مرکزي ورودي/ خروجي دارد)
انجام عمل خواندن و انتقال بلاک حاوي رکورد به بافر
تکرار از مرحله 3 در صورت لزوم
سطوح نشاني دهي
همانطور که نشاني دهي به " داده مورد نظر "در حافظه اصلي سطوحي وجود دارد , و بسته به اينکه در چه سطحي از برنامه سازي باشيم ,نحوه نشاني دهي فرق ميکند ,در مورد فايلها نيز اين معنا صادق است ,زيرا آنچه در فايل نشاني دهي ميشود , "دادههاي مورد نظر " است که در جايي از حافظه خارجي ذخيره شده است و نحوه نشاني دهي به آ، بستگي دارد به سطح برخورد با محيط ذخيره سازي خارجي , پس ابتدا ببينيم سطوح مختلف برخورد با فايل کدامند
به طور کلي (صرفنظر از جزييات بحث که اساسا به مقولات سيستم عامل مربوط ميشود) ميتوان اين سطوح را به صورت زير نمايش داد:
برنامه فايل پرداز , به کمک احکامي از يک زبان برنام سازي و از طريق "سيستم فايل منطقي يا مجازي, نهايتاً" به محيط فيزيکي ذخيره سازي دستيابي دارد و پردازش مورد نظرش را انجام ميدهد .هر سيستمي فايل , يک يا بيش از يک شيوه دستيابي به داده دارد
سيستم فايل, لايههاي دروني خاص خود را دارد, ولي ميتوان گفت که از دو بخش عمده تشکيل شده است .
سيستم فايل منطقي
سيستم فايل فيزيکي
وظيفه سيستم فايل منطقي اين است که در خواست هاي برنامه کاربرد را دريافت کرده , آنرا انجام دهد اين درخواست ها به طور کلي عبارتند از : باز کردن فايل , خواندن فايل ,نوشتن فايل , بستن فايل
وظيفه سيستم فايل فيزيکي , دستيابي فيزيکي به فايلها در محيط فيزيکي است , و براي اين منظور بايد در خواست هاي دريافتي از بخش منطقي را تبديل کند به فراميني جهت صدور به کنترولر رسانه اين فرامين با توجه به نوع رسانه , متفاوتند, ولي به طور کلي سه عمل اساسي در محيط فيزيکي انجام ميشود که عبارتند از : پيگرد که لازمه اش داشتن آدرس است , خواندن از رسانه و نوشتن بر رسانه , اين عمليات بايد به طور فيزيک صورت بگيرند يعني يافتن مکان ذخيره شدن "داده مورد نظر " روي رسانه , انتقالي از رسانه به محيط دروني ماشين و انتقال از محيط دروني ماشين به رسانه
پس به طور کلي و سه سطح برخورد با فايل وجود دارد:
سطح برنامه کاربر
سطح سيستم فايل منطقي
سطح سيستم فايل فيزيکي
بنابراين سطح نشاني دهي نيز وجود دارد:
نشاني دهي در سطح برنامه فايل پرداز
نشاني دهي در سطح سيستم فايل منطقي
نشاني دهي در سطح سيستم فايل فيزيکي
سطوح مختلف نشاني دهي
نشاني دهي در سطح برنامه پردازشگر
معمولا در اين سطح به يکي از گونههاي زير به فايل نشاني دهي ميشود:
نشاني دهي محتوايي (مقداري)
نشاني دهي نسبي
نشاني دهي نمادي
در نشاني دهي محتوايي , کاربرد مقدار يک (و گاه بيش از يک ) صفت خاصه را به عنوان نشانوند جستجو ميدهد . اين صفت خاصه ممکن است کليد باشد و يا نباشد و در واقع کاربرد , محتواي يک ( گاه بيشت از يک ) فيلد را به سيستم ميدهد . در نشاني دهي نسبي , کاربر آدرس نسبي رکورد را ميدهد . به عبارت ديگر , کاربرد محيط ذخيره سازي خود را يک ساختار خطي ميبيند که در ا، هر رکورد شمارهاي دارد و با شروع از يک براي اولين رکورد فايل.
در نشاني دهي نمايد , کاربر رکورد مورد نظرش را به کمک يک نام مشخص ميکند ,خود فايل نيز به کمک يک نام در برنامه مشخص و نشاني دهي ميشود.
نشاني دهي در سطح سيستم فايل منطقي
در اين بحث فرض بر اين است که فايل در يک فضاي پيوسته ذخيره ميشد در غير اينصورت سيستم فايل از روشهاي ديگر استفاده ميکند.
در اين سطح , براي نشاني دهي به فايل اساسا از نشاني دهي نسبي استفاده ميشود. ولي اين آدرس نسبي با آدرس نسبي از ديد کاربر(که در محدوده يک فايل مشخص صورت ميپذيرد ) متفاوت است . اين آدرس نسبي که در سطح سيستم فايل منطقي داده ميشود, در کل فضاي ذخيره سازي صورت ميگيرد, به شرح زير :
سيستم فايل منطقي , کل فضاي خيره سازي را به صورت آرايهاي از بلاکها ميبيند (و يا سکتورها) و از تعداد بلاکها نيز مطالعه است . هر بلاک شمارهاي دارد با شروع از صفر براي اولين بلاک و اين شماره اصطلاحا به آدرس نسبي بلاک مرسوم است.
سيستم فايل منطقي, با داشتن تعداد نوع و ظرفيت هر يک از رسانههاي محيط فيزيکي ,طيف مقادير RBA را براي هر رسانه و نيز کل فضاي ذخيره سازي مشخص ميکند.
فرض ميکنيم که دو ديسک AوBداريمسيستم فايل منطقي بايد, آدرس داده شده توسط برنامه را به آدرس نسبي بلاک حاوي رکورد تبديل کند اگر آدرس در برنامه , نمادي براي تبديل از يک جدول خاص استفاده ميکند . اين جدول شبيه جدول اسامي نمادي است که اسمبلرها به کار ميبرند.
اگر آدرس داده شده در برنامه, آدرس نسبي رکورد باشد ( که در محدوده يک فايل مشخص است) بخش منطقي بايد آنرا RBA تبديل کند . براي اين منظور به اطلاعاتي از قبيل شماره رکورد , اندازه رکورد , اندازه بلاک و آدرس شروع فايل نياز دارد.
نشان دهي در سطح سيستم فايل فيزيکي
در اين سطح بايد آدرس فيزيکي داده شود, يعني آدرسي که مکان داده مورد نظر را در محيط فيزيکي ذخيره سازي (روي رسانه)مشخص کند. ديديم که در حالتي که رسانه ، ديسک است . اين آدرس از اجزاء زير تشکيل ميشود.
شماره درايور
شماره استوانه
شماره رويه (شياره از استوانه)
شماره سکتور از شيار( يا شماره بلاک)
روشن است که مکان يابي و دستيابي فيزيکي به داده مورد نظر در حافظه خارجي بايد با استفاده از همين آدرس فيزيکي صورت پذيرد . لذا سيستم فايل فيزيکي بايد RBA را به آدرس فيزيکي تبديل کند.
ملاحظاتي در طراحي فايل
طراحي فايل عبارتست از فراروند تعيين يک ساختار ( يا سازمان) فايل به نحوي که نيازهاي مشخص کاربر پاياني را برآورده کند و زمان پاسخ دهي به در خواستهايش را به حداقل برساند اين فراروند در اساس دو مرحله دارد: مرحله نخست , طراحي فايل منطقي است که عبارتست از انتخاب يک ساختار فايل ( از بين ساختارهايي که سيستم فايل ارائه ميکند) يا طراحي يک ساختار جديد مرحله دوم , طراحي ساختار فايل فيزيکي است که خود گامهايي دارد . بعضي از ملاحظاتي که در طراحي فايل مطرحاند و عبارتند از :
انتخاب بافرها براي عمليات ورودي/ خروجي
تخصيص بافرها براي عمليات ورودي/ خروجي
اندازه فايل فيزيکي
مکان بلاک در حافظه خارجي
طراحي يا انتخاب شيوه دستيابي مناسب
انتخاب کليد اصلي از بين صفات خاصه رکورد و کليد ثانوي
در نظر داشتن رشد فايل : فايلها به د و دسته کلي پويا يا ايستا تقسيم ميشوند. در فايلهاي پويا اندازه فايل رد اثر عمليات تغيير دهنده (درج , حذف) بهنگام سازي9 مرتب تغيير ميکند . وقتي که تغييرت در فايل زايد باشد , ميگوييم فايل بسيار نامانا است در نظر گرفتن وضعيت رشد فايل براي تخمين حجم عمليات لازم در دستيابي به رکوردها , لازم است .
تعيين زمان و پريود سازماندهي مجدد فايل
اندازه فايل فيزيکي هم روي حجم عمليات لازم براي بازيابي رکورد(ها) و زمان اين کار تاثير دارد. وقتي که اندازه فايل کوچک باشد , تفاوت چنداني در زمان اين علميت بين دو ساختار متفاوت وجود ندارد. اما در مورد فايلهاي بزرگ , اين تفاوت ميتوان قابل ملاحظه باشد
در فراروند طراحي فايل , دو محدوديت اساسي وجود دارد: محدوديت نخست اين است که برنامهاي کاربردي بايد انتخاب خود را به ساختارها و شيوههاي دستيابي خاصي , غير از آنچه سيستم فايل ارائه ميکند , نيز طراحي و پياده سازي کرد .
محدوديت ديگر اينکه بايد بين سرعت عملياتي (زمان پاسخدهي) و مصرف حافظه , مصالحهاي صورت گير معمولاً افزايش فضاي تخصيص داده شده به فايل منجر به کاهش زمان دستيابي ميشود . تصميم گيري در مورد تخصيص حافظه بيشتر به فايل يا بهبود زمان پاسخدهي بستگي به وضع کاربرد دارد.
در فايلهاي کوچک , تفاوت قابل ملاحظهاي در زمان عمليات روي فايل در ساختارهاي فايل متفاوت وجود ندارد , اما در فايلهاي بزرگ اين تفاوت قابل ملاحظه است . به علاوه هرچه فايل فعالتر باشد يعني مرتباً مرود پردازش قرار گيرد, در اين صورت بهبود زمان پاسخدهي به مصرف حافظه لازم براي اين کار ميارزد.
کارايي سيستم فايل
فايل ساختمند , يک ساختار دادهاي 0 ساده يا پيچيده ) ذخيره شده در حافظه) خارجي است . اگر تمام اطلاعات در حافظه اصلي ذخيره شود, دستيابي به دادهها طبعاً خيلي سريع ميشود . ولي عملاً استفاده از سلسله مراتب حافظهها اجتناب ناپذير است زماني دستيابي به حافظه اصلي حدود 100000 بار سريعتر از زمان دستيابي به ديسک است . بنابراين از عوامل بسيار موثر در بهبود کارايي سيستم فايل , زمان دستيابي به دادهها است . اما عوامل ديگري هم وجود دارند, هر چند نهايتاً زمان دستيابي به داده و دفعات دستيابي لازم براي بدست آوردن داده مرود نظر و انجام عمليات روي داده , تعيين کننده کارايي سيستم است . عوامل مهمتر موثر در کارايي سيستم فايل عبارتند از :
سلسله مراتب حافظهها
پارامترهاي ظرفيتي و زمان رسانه(بويژه ديسک)
اندازه بلاک و تکنيک بلاک بندي
لوکاليتي رکوردهاي فايل
چگونگي بافرينگ و اندازه و تعداد بافرها
تکنيکها و طرح هاي بکار رفته در ايجاد و مديريت فايلها در خود سيستم فايل
تکنيکهاي کاهش زمان استوانهجويي و زمان درنگ دوراني
تکنيکهاي تسريع پردازش فايل
سيستم فايل کاراتر ( مثلا LFS)
ساختار فايل کاراتر
و برخي عوامل ديگر
:: بازدید از این مطلب : 2
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0